Computer networks are used to facilitate the exchange of information among computers in communication within the network. Such computer networks include computer systems, or clients, that request information from a source and computer systems, or servers, that transmit information to a recipient. Data communications devices are located between the clients and servers to transmit packets of data across the network.
A group of servers can be coupled to the network via a data communications device such as a router or switch. This device operates to distribute incoming client requests for data to one server within the group of servers. The data communications device also prevents a single server from becoming overloaded with requests for content by multiple clients in a process known as load balancing.
The number of requests that a server receives (i.e., the load on the server) affects the amount of time required by the server to respond to the content request. FIG. 1 shows a graph 20 of an example relationship between server response time 30 and server load 32. For a server load between zero and a saturation point 28, the time for response to content requests is approximately constant 22. For example, if the server load saturation point is eight content requests received in a given amount of time, the response time of the server remains approximately unchanged after receiving up to eight content requests. When the server reaches a load saturation point 28 for incoming requests, for example, greater than eight content requests received in a given amount of time, the response time of the server increases with an approximately vertical slope 26. Therefore, once the number of requests for information increases above a server's saturation point for a given period of time, the time for server response to each request increases.
To prevent a single server in a network from becoming saturated (i.e., unable to effectively respond to requests), conventional data communications devices determine the load or performance of each server in a network and direct content requests to the servers in the network based on the performance information. Typically, a conventional data communications device determines server performance using out-of-band and in-band performance checks.
In one type of conventional out-of-band performance check, or health check, the data communications device functions as if it were a client computer and forwards a connection establishment request to a server. If the server is able to respond to the request, the server acknowledges receipt of the connection establishment request from the data communications device, thereby indicating adequate performance of the server (i.e., confirming the server's ability to accept connections). If the server is unable to respond to the connection establishment request because, for example, the queue of the server contains a number of requests, the server rejects the connection, thereby indicating inadequate performance of the server. This type of out-of-band performance check is pass/fail. In another type of conventional out-of-band performance check, the server periodically communicates a set of metrics, relative to the server, to the data communications device. The communications device uses the metrics to measure the capacity or performance of the server over time.
For one type of conventional in-band performance check, the data communications device passively observes the success or failure of connections attempted between clients and a server. The communications device determines the performance of the server based upon the server's ability to accept new connections from additional client computers. If the server is able to accept new connections, the data communications device determines that server performance is adequate and continues to forward requests to the server. If the server is unable to accept new connection requests, the communications device determines that server performance is inadequate and redirects incoming requests to other servers in the network. This type of performance check is also a pass/fail check. In another type of conventional in-band performance check, the data communications device measures the amount of time required by the server to respond to a content request. Generally, the data communications device determines that the greater the amount of time required by the server to provide a response, the lower the performance of the server.